package cn.zlg.common.datadump.processor;

import cn.zlg.common.datadump.annotation.DataDumpEntity;
import com.querydsl.core.Tuple;

import java.util.List;

/**
 * 提供在保存数据、覆盖数据、保存完成后的回调
 * @param <T>
 */
public interface ExportEntityProcessor<T> {


    /**
     * 数据转换后处理
     * @param origin
     * @param entity
     * @param annotation
     * @return
     */
    T processAfterTransformed(Tuple origin, T entity, DataDumpEntity annotation);

    List<T> batchProcessAfterTransformed(List<Tuple> origin, List<T> entity, DataDumpEntity annotation);

    /**
     * 是否支持批量操作 , 如果支持批量操作，则调用批量操作方法，不调用单个处理方法，否则挨个调用单个处理方法
     **/
    default boolean supportBatch() {
        return false;
    }
}
